This is a memo for FeynArts.

Install
    I used feyninstall. I forgot the details.
Preparation
      << FeynArts`
      
    Last caracter is next to "1" on my keybord. (I use MacBookPro.)
Diagram (Topology)
      CreateTopologies[l, i -> f];
      Paint[%];
      
        l: # of loop
        i: # of initial state
        f: # of final state
      
    This include not 1PI diagram. If we want only 1PI diagrams, we should type as follows:
      CreateTopologies[l, i -> f, ExcludeTopologies -> Internal];
      Paint[%];
      
    We can name them for convenience;
      test=CreateTopologies[l, i -> f, ExcludeTopologies -> Internal];
      Paint[test];
      
    TIPs: I prefer "Paint[test];" than "Paint[test]" because latter show some information which is usually not needed.
Diagram (practical)
    Zbb in SM at one-loop
      (* generate diagrams *)
      CreateTopologies[1
       ,1 -> 2
       ,ExcludeTopologies -> Internal
      ];
      
      (* Insert physical fields, , V[2]= Z boson, F[4, {3}] = bottom, "-" means anti-particle. *)
      InsertFields[ t12, V[2] -> {F[4, {3}], -F[4, {3}]} ]; 
      
      (* Draw the diagrmas *)
      Paint[%
       ,ColumnsXRows->4
       ,PaintLevel->{Classes}
      ]; 
      
    photon self-energy in QED at one-loop
      CreateTopologies[1, 1 -> 1, ExcludeTopologies -> Internal];
      InsertFields[ %, V[1] -> V[1], Model->"QED" ]; 
      Paint[%, PaintLevel->{Classes}];
      
    We specify the model in 2nd line. If we use "Paint[%];" instead of "Paint[%, PaintLevel->{Classes}];", then we will find unwanted diagrams as well as what we want. This unwanted diagrams are generic diagram and represent where are fermions, gauge boson without specify the particle names. Another way to eliminate the generic diagrams is to use "InsertionLevel -> {Classes}" in InsertFields command: CreateTopologies[1, 1 -> 1, ExcludeTopologies -> Internal]; InsertFields[ %, V[1] -> V[1], Model->"QED", InsertionLevel -> {Classes}]; Paint[%];
From diagrams to amplitude
    example: photon self energy in QED.
      CreateTopologies[1, 1 -> 1, ExcludeTopologies -> Internal];
      InsertFields[ %, V[1] -> V[1], Model->"QED", InsertionLevel -> {Classes}];
      amp = CreateFeynAmp[%];
      amp >> testQEDcalc.amp
      Clear[dam]
      
    This testQEDcalc.amp can be read in FormCalc.
FormCalc
<< FormCalc`
CalcFeynAmp[<< testQEDcalc.amp]

FormCalc
(2019.4.22) << FormCalc` でエラーが出た。ファイルが読めないらしい。無視して動かそうとしても動かなかったので、FormCalc-9.8/Formcalc.m を以下のように改造。
(*
$FormCalcDir = DirectoryName[ File /.
  FileInformation[System`Private`FindFile[$Input]] ]
*)

$FormCalcDir = DirectoryName["/Users/abetomo/work/programs/FormCalc-9.8/README"]
	 
$FormCalcDir に FormCalc の Directory を教えれば良い。READMEを付けているのは、そのファイルのあるディレクトリをDirectoryName[]は読み取るため。FormCalc の DirectoryにあるファイルならREADMEでなくても良いはず。とりあえずこれで動いたのでよしとする。